Transaction processing systems have led the way for many ideas in distributed computing and fault-tolerant computing. For example, transaction processing systems have introduced distributed data for reliability, availability, and performance, and fault tolerant storage and processes, in addition to contributing to the client-server model and remote procedure call for distributed computation. Importantly, transaction processing introduced the concept of transaction ACID properties—atomicity, consistency, isolation and durability that has emerged as the unifying concept for distributed computations. Atomicity refers to a transaction's change to the state of the overall system happening all at once or not at all. Consistency refers to a transaction being a correct transformation of the system state and essentially means that the transaction is a correct program. Although transactions execute concurrently, isolation ensures that transactions appear to execute before or after another transaction because intermediate states of transactions are not visible to other transactions (e.g., locked during execution). Durability refers to once a transaction completes successfully (commits) its activities or its changes to the state become permanent and survive failures.
Many applications for workflow tools are internal to a business or organization. With the advent of networked computers and modems, computer systems at remote locations can now easily communicate with one another. This allows computer system workflow applications to be used between remote facilities within a company. Workflow applications can also be of particular utility in processing business transactions between different companies. Automating such processes can result in significant efficiency improvements, not otherwise possible. However, this inter-company application of workflow technology requires co-operation of the companies and proper interfacing of the individual company's existing computer systems.
Many attempts at description languages for business workflow process have been made. These languages target specifications of distributed and concurrent systems for the purpose of systems integration. The extensible markup language (XML) has been designed for system integration. XML is a meta-markup language that provides a format for describing structured data. An XML element can declare its associated data to be a retail price, a sales tax, a book title, or any desired data element. XML provides a structural representation of data that has proved broadly implementable and easy to deploy. A piece of information marked by the presence of tags is called an element. Elements can be further described by attaching name value pairs called attributes. Once the data is received by the client, the data can be manipulated edited and presented in multiple ways without being sent back to the server. The XML syntax uses matching start and end tags to mark up information. Presently, XML has been applied to the representations of applications data (e.g., business documents, EDI messages). Efforts have been made by the Workflow Management Consortium to describe business processes with XML. However, none of these descriptions have provided a compelling and theoretically sound framework for description of system behavior.
Accordingly, there is a strong need in the art for a method for providing a sound framework for business workflow process applications in addition to providing a sound framework in the broad domain of distributed and parallel computing.